// Copyright Epic Games, Inc. All Rights Reserved.

#pragma once

#include "CommonActionWidget.h"
#include "LyraActionWidget.generated.h"

class UEnhancedInputLocalPlayerSubsystem;
class UInputAction;

/** 一个动作控件，将获取当前分配给此控件上通用输入动作的键的图标 */
UCLASS(BlueprintType, Blueprintable)
class ULyraActionWidget : public UCommonActionWidget
{
	GENERATED_BODY()

public:

	//~ 开始 UCommonActionWidget 接口
	/**
	 * 获取图标
	 * @return 返回表示当前绑定键或默认图标的画刷
	 */
	virtual FSlateBrush GetIcon() const override;
	//~ 结束 UCommonActionWidget 接口

	/** 与此通用输入动作关联的增强输入动作。 */
	UPROPERTY(BlueprintReadOnly, EditAnywhere)
	const TObjectPtr<UInputAction> AssociatedInputAction; //关联的输入动作

private:
	/**
	 * 获取增强输入本地玩家子系统
	 * @return 返回有效的子系统指针，如果无法获取则返回nullptr
	 */
	UEnhancedInputLocalPlayerSubsystem* GetEnhancedInputSubsystem() const;
	
};